User interface techniques for television channel changes

ABSTRACT

An improved user premises device enhances the channel change experience. In response to a channel-up or a channel-down command, a currently displayed program is re-sized to fit within a smaller program window. In the display area that is exposed due to the re-sizing of the currently displayed program, additional content such as an advertisement or channel change progress information is displayed. Additional program windows that render snapshots of content from one or more program up and one or more program down may be displayed in windows that are organized in a vertical alignment with the program window of the currently displayed program. The program windows are animated or scrolled in a direction to bring the program window of the user-desired next program in place of the program window of the currently displayed programmed. The program window of the next program is then resized to occupy the entire display.

BACKGROUND

This patent document relates to presentation of digital video programsand, in one aspect, to user experience during changing program channels.

Digital video delivery systems offer improved video quality overconventional analog video delivery systems and other benefits. Userexperience in changing program or television channels is an importantaspect of the quality parameters in digital video delivery systems.However, channel change times in certain existing digital video deliverysystems tend to be slower than channel change times in analog deliverysystems.

SUMMARY

Techniques for controlling on-screen display of content during a channelchange are disclosed. In some embodiments, prior to a user-initiatedchannel change, a current program may be displayed on the entire displayarea. Upon receiving a channel change request, the display size of thecurrent program is reduced to make room for displaying content from thenext program. In some embodiments, display windows for the currentprogram and the next program are arranged in a vertical alignment. Thealigned windows may be non-overlapping and may be animated (e.g.,scrolled) in a vertical direction to provide a visual feedback to theuser that processing of a channel change is currently underway. Once thewindow for the next program reaches a pre-designated location, such asthe position previously occupied by the current program window, the nextprogram window is rescaled to occupy the entire display screen area. Insome embodiments, during the scrolling operation, other visualinformation, e.g., animated graphics or advertisements, are displayed onscreen area not occupied by the current program or the next program.

In one aspect, a method of visually presenting channel changes on adisplay is disclosed. The method includes displaying a first program ina first window at a first position on the display, receiving a firstchannel change command, changing, in response to the first channelchange command, a first visual characteristic of the first window,thereby exposing a portion of a background layer of the display,displaying at least a portion of a second program in the exposed portionof the display in a second window that is positioned in a verticaldirection with respect to the first window, automatically scrolling thefirst window and the second window across the display in the verticaldirection, such that the first window begins to move out of the displaywhile the second window begins to move in a direction of the firstposition and changing, after the second window is at the first positionon the display, a second visual characteristic of the second window suchthat the second window occupies the display, with the first windowdisappearing from the display.

In another aspect, an apparatus for providing visually continuouschannel changes on a display having a display area is disclosed. Theapparatus includes a display module that displays a current program onsubstantially all of the display area, a command reception module thatreceives a command for viewing a next program, a first rescaler modulethat rescales, in response to the command, in a visually continuousmanner, the current program to fit within a first window in the displayoccupying an original position on the display, a presentation modulethat presents, at least a part of the next program, in a second windowthat is positioned in a second portion of the display that isnon-overlapping with the first portion, a window transition module thattransitions out, in a visually continuous manner, the first window fromthe display area while transitioning in the second window to theoriginal position previously occupied by the first window, and a secondrescaler module that expands the second window, after the second windowis at the original position, to occupy substantially all of the displayarea.

In yet another aspect, a disclosed method for controlling a display toprovide an enhanced channel change experience includes displaying afirst channel, receiving a first command to view a second channel,initiating a channel change from the first channel to the secondchannel, in which the channel change includes reducing a display size ofthe first channel, progressively displaying video from the secondchannel as more and more data for the second channel is received,scrolling out the first channel such that the first channel graduallydisappears from the display, correspondingly scrolling the secondchannel to take an on-screen position of the first channel, andexpanding the second channel to a full size after sufficient data forthe second channel is available, receiving, amid the channel change andprior to the expanding the second channel to the full size, a secondcommand to view a third channel, and in response to the second commandand progressively displaying video from the third channel as more andmore data for the third channel is received, scrolling out the firstchannel and the second channel such that the first channel and thesecond channel gradually disappear from the display, correspondinglyscrolling the third channel to take a position of the first channel, andexpanding the third channel to a full size after sufficient data for thethird channel is available.

In yet another aspect, a disclosed apparatus for displaying multiplevideo programs simultaneously includes a first display module to displaya first video program in a first program window, a second display moduleto display a second video program in a second program window, a displaywindow management module to control sizes and positions of the firstprogram window and the second program window such that the secondprogram window is non-overlapping with and positioned directly adjacentto the first program window, a command module that receives a firstcommand to change channel from the first program to a second program, atransition module that causes, responsive to the first command, thefirst program window and the second program window to transition from aninitial state in which the first program window is completely visibleand at a first position on the screen and a final state in which thefirst program window is completely invisible and the second programwindow is at the first position, a first rescaler module that rescalesthe first program window from a first full-screen mode in which thefirst program window occupies an entire screen display area to a firstwindow-mode in which the first program window occupies less than theentire screen display area and a second rescaler module that rescalesthe second program window from a second window-mode in which the secondprogram window occupies less than the entire screen display area and asecond full-screen mode in which the second program window occupies theentire screen display area.

These, and other aspects and examples of implementations are describedbelow in the drawings, the description and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an example display screen on which a current program isdisplayed.

FIG. 2 shows an example display screen on which a current program isrescaled and displayed.

FIG. 3 shows an example display screen on which a current program and anext program are displayed.

FIG. 4 shows an example display screen on which a current program and anext program are displayed and scrolled in a vertical direction.

FIG. 5 shows an example display screen on which a current program and anext program are displayed and further scrolled in a vertical direction.

FIG. 6 shows an example display screen on which a current program and anext program are displayed and further scrolled in a vertical directionsuch that the second program is in an on-screen position.

FIG. 7 shows an example display screen on which the next program isbeing rescaled to occupy entire display area.

FIG. 8 shows an example display screen on which the next program isdisplayed.

FIG. 9 shows an example display screen on which the next program isbeing rescaled to occupy entire display area when an additional channelchange request is received.

FIG. 10 shows an example display screen on which the next program isrescaled to reduce area occupied to accommodate program display windowfor another program.

FIG. 11 shows an example display screen on which the current program,the next program and the another program are simultaneously displayed ina vertical, non-overlapping arrangement.

FIG. 12 shows an example display screen on which the current program,the next program and the another program are simultaneously displayedand scrolled in a vertical, non-overlapping arrangement.

FIG. 13 shows an example display screen on which the current program,the next program and the another program are simultaneously displayedand scrolled in a vertical, non-overlapping arrangement.

FIG. 14 shows an example display screen on which the current program,the next program and the another program are simultaneously displayedand scrolled in a vertical, non-overlapping arrangement to bring thedesired another program at a position originally occupied by the currentprogram.

FIG. 15 shows an example display screen during a second consecutivechannel change.

FIG. 16 shows another example display screen during a second consecutivechannel change.

FIG. 17 shows an example display screen after a second consecutivechannel change is performed.

FIG. 18 is a flowchart of an example method for a visual presentation ofa channel change.

FIG. 19 is a block diagram of an example apparatus that presents channelchanges in a visually continuous manner.

FIG. 20 is a flowchart of an example method for a visual presentation ofa channel change in response to a sequence of multiple channel changecommands.

FIG. 21 is block diagram of an example apparatus that provides a visualpresentation of a channel change in response to a sequence of multiplechannel change commands.

FIG. 22 depicts high level architecture of an example communicationnetwork.

FIG. 23 depicts a high-level architecture of an example one-waycommunication network to deliver re-sized images of programs (orthumbnail images) to the end user devices. In this example, we deliverthumbnail images using data carousel in the similar way to deliverprogram meta-data over the one-way communication network.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

In some digital program delivery networks, such as certain digital cablenetworks or direct-to-home satellite networks, channel changes may berelatively slow and exhibit a noticeable delay, e.g., a delay from 1.5seconds to 2 seconds. In some systems, changing channels between highdefinition programs take even a longer amount of time, e.g., 2.7 to 4.5seconds. Certain digital delivery systems with higher resolutionformats, e.g., ultra high definition or 4K formats, may have longerchannel change times than some existing digital delivery systems.Similarly, relatively long channel change times may be experienced whenchanging between a broadcast program, a video on demand program, aprogram being retrieved from a digital video recorder, and so on.

During the time between when a channel change request is received andwhen the desired new channel is displayed, a user device (e.g., aset-top box or a digital television, or a handheld device such as atablet computer) may perform one or more operations such as tableparsing, re-tuning a tuner, filling decoding buffers with video data,and so on. Some digital delivery systems are used to display a black (orblank) screen with some information about the new channel untilsufficient data is received for the new channel to be able to show allor a part of the video of the next channel.

Some users find the channel delay times in some of the existing digitaldelivery systems to be excessive, thus reducing the quality of the userexperience. Further, during the time in which a user device is updatingthe display by discontinuing displaying the current program andbeginning to display the next program, the user has very little feedbackabout what progress is going on in the user device for the requestedchannel change. The inventors recognized that the time delay duringchanging channels, e.g., the 2 to 4 seconds channel change time in somesystems, can be beneficially used to provide additional or usefulinformation to the users to keep the user visually engaged with thetelevision viewing experience, e.g., providing a great opportunity todisplay advertisements and/or other visual content to a user. Theinventors also observed that, when there is no apparent visual feedbackrelated to a channel change, users may impatiently press channel-up orchannel-down controls at a rate faster than the time it takes to achievea channel change. As a result, when a user puts a user device in such acontinuous channel change mode in which the user device attempts tochange multiple channels in a sequence, the display may go blank (or maydisplay broken tiles of video) for 2 to 10 seconds, which may bedisruptive to the user's television viewing experience.

The techniques disclosed in the present document can be implemented invarious ways that overcome the above-discussed shortcomings in a user'stelevision viewing experience and problems associated with presentationof digital video programs, and, in addition, can be implemented in waysthat improve or enhance the user experience in changing program or TVchannels. In various embodiments, using the disclosed techniques,changing from one program being viewed (whether broadcast television, orstreaming content, or using another delivery mechanism) to another maybe implemented.

In some disclosed embodiments, a user-requested channel change may takeapproximately the same amount of time as in other digital systems, butinstead of displaying a blank or black screen to the user during thechannel change time, the display may present moving pictures and/orother content of interest to the user. For example, in some embodiments,a “fortune cookie” type message may be displayed to the user. In someembodiments, a trivia question may be displayed to the user, and ananswer may be provided during the channel change time or the next timethe user changes a channel. In some embodiments, pre-cached daily comicstrips may be displayed to the user during the channel change time. Invarious embodiments, the displayed text and graphics may be provided bya television service provider, a user device manufacturer and may or maynot be related to the channel the user is changing from or changing to.Those and other embodiments use the delay in changing channels toprovide interesting or useful contents.

FIG. 22 depicts an example content network 100. A user device 108 (e.g.,a set-top box, a home gateway device, a digital television, a handheldor mobile device, etc.) may be communicatively coupled with a contentserver 104 that servers, unicasts or broadcasts multiple audio/videoprograms, or channels, to the user device 108 over a network 106. Thecontent server 104 may receive the programming from programming inputs102 from content providers. In various embodiments, the content server104 can be implemented as a cable headend, a satellite headend, apersonal video recorder box at a user residence, or a streaming server,etc. In various embodiments, the network 106 may include one or morenetworking technologies such as wired (cable, digital subscriber loop orfibre optic lines) or wireless (802.11, microwave, 3G or 4G networks,WiMAX, satellite, etc.).

FIG. 23 depicts a block diagram representation of an examplecommunication network 2300 to deliver re-sized images of programs (orthumbnail images) to the end user devices 108. The user device 108 mayreceive a live feed over a wireless network such as a satellite network.On the network side, the video content may be received from live feedsor tapes or other media into an ingest encoder. The encoder may format,encode or process the feeds to produce encoded video data for storage ina storage module. The storage module may also receive pre-encoded datausing transfer protocols such as the file transfer protocol. The storeddata may be played out to a decoder under the control of a headendcontrol system such as the broadcast management system (BMS) that mayschedule, using a scheduler module, the playout. The decoded video datamay be re-encoded prior to transmission using a second encoder (noningest), multiplexed with preview snapshots and provided for uplinking.

In the example in FIG. 23, the “Thumbnail & Program Meta-data Generator”module 2302 generates JPEG images based by capturing MPEG data of theprograms and commands the “Streamer” module 2304 to broadcast the JPEGimages by mixing other meta-data of the programs including entitlementmanagement messages EMMs and entitlement control messages ECMs. Once theuser device 108 receives the JPEG images, the user device 108 stores theJPEG images into a database along with other program related data anduse for presentation on display during channel changes, as described inthe present document. The scheduler may further provide an extensiblemarkup language (XML) description of stored programs to the module 2302such that the notion of a “channel number” is associated with theprograms. This notion of channel number may be used to provide previewsduring “channel up” or “channel down” operations as described in thepresent document.

Some aspects of the disclosed techniques are described using two examplechannel change scenarios.

EXAMPLE 1

FIG. 1 shows an example of a program viewing display 150 in which acurrent program 154 is being displayed in a full-screen mode, i.e., thewindow in which the current program 154 is being displayed is occupyingsubstantially all of the display area. In the illustrated example, thedisplay 150 may be generally rectangular in shape and may be defined bya bottom edge 156, a top edge 158, a left edge 160 and a right edge 162,all defined relative to a viewer's perspective.

While watching the current program 154, a user may initiate a channelchange operation. For example, the use may press a “channel up” or a“channel down” button on a remote control unit associated with the userdevice, or may press a channel change button or on-screen menu on theuser device.

FIG. 2 shows an example of a display status 200 that, in response to thechannel change command, the display 150 is updated such that the currentprogram 154 is now presented in a window 202, which is occupying lessthan all of the display area. In some embodiments, e.g., when a userdevice has sufficient resources (graphics memory, packet filtering,decryption, tuner, etc.), additional windows 204, 206 may presentcontent from one channel up/one channel down by stacking the windows202, 204 and 206 in a vertical arrangement (i.e., from the top edge ofthe display 150 to the bottom edge of the display 150).

In some embodiments, the content from the previous/next channels that isdisplayed in the windows 204, 206 may initially be static, i.e., stillpictures and not moving video. These still pictures may be received bythe user device from time to time (e.g., once every 5 to 10 seconds) asthumbnail graphics for the channel lineup available to the user. In someembodiments, the content from the previous/next channels displayed inthe windows 204, 206 may be assembled on-they-fly, i.e., based on datapackets received for the respective channels (e.g., initially decodingand presenting all received intra-coded blocks, followed by predictivelycoded blocks, and so on).

The transition from display status depicted in FIG. 1 (user watching afirst program) to the display status 200 can be very rapid, e.g., withina single frame refresh time (33 milliseconds for 30 frames per seconddisplay or 16.7 milliseconds for a 60 Hz frame rate). In oneadvantageous aspect, the rapid transition from FIG. 1 to FIG. 2 displaystatus may thus provide the user an instantaneous feedback that the userdevice has received the channel change command and is working onchanging the channel for the user. The transition of the current program154 to the window 202 may be performed in a visually continuous manner,e.g., by elastically shrinking the window from the full-screen mode tothe less-than-full-screen mode.

In some embodiments, a secondary program, e.g., an advertisement, may bedisplayed on the display area 208 that is un-occluded by the windows202, 204, 206. In some embodiments, the user device may receive locationinformation about which portion of an advertisement within the picturearea is of a greater importance to the advertiser. This non-occlusioninformation may be used by the user device to adjust the on-screenpositions of windows 202, 204, 206 such that the important content inthe advertisement is visible to the user. For example, an advertiser mayidentify a logo, or a sale price display region as the non-occlusionregion. In some embodiments, the user device may use multiple graphicslayers in a graphics memory to produce the final on-screen picture. Forexample, the advertisement content 208 may correspond to a backgroundgraphics layer while the program windows 202, 204, 206 may correspond toone or more foreground graphics layers. In some embodiments,alpha-blending may be used, with alpha values between 0 and 1(inclusive) to produce the composite picture on the display 150.

The display status 200 shows a time instant at which the window 202 thatshows the current program 154 is being rescaled (shrunk), but may stilllarger than the other program windows 204 and 206. In variousembodiments, the different display sizes of windows 202 and 204/206, maybe over-lapping or non-overlapping with each other and may displaymoving videos or static pictures.

FIG. 3 shows an example display status 300 in which the current programwindow 302 has been rescaled to its minimum size. In the depictedexample, all three windows 302, 204 and 206 have similar or identicalsizes and are in vertical alignment with respect to their left and rightedges. The term “vertical” in this context refers to the arrangement ofwindows in the direction between the top edge of the display and thebottom edge of the display from a viewer's perspective.

In some embodiment, during the rescaling from FIG. 1 to FIG. 2 to FIG.3, the video content displayed in windows 202, 302 may be held static,e.g., freeze a last program picture frame that was being displayedbefore the channel change was initiated. In other embodiments, thecontent within windows 202, 302 may be active, or correspond to video(e.g., moving pictures) content.

In some embodiments, the display status 300 may arrange the programwindows 302, 204 and 206 to be non-overlapping and having windowseparation areas that may display icons 304, 306 indicative ofrelationships between displayed program windows (e.g., an up-arrow 304indicating a channel-up direction and a down-arrow 306 indicating achannel-down direction).

In some embodiments, the display 150 may include a visual cue that theposition of the program window 302 is a “seed position” to which awindow fits to at the end of the rescaling process and immediately priorto the scrolling process or vice-a-versa.

FIG. 4 shows an example of an intermediary display status 400 whileprogram windows 402, 404 and 406 have been animated to move in thevertical direction (from/to top edge and bottom edge of the display150). For example, compared to windows 206 and 208, the window 406 hasalmost been scrolled out of the active picture area from the top pictureedge 158, while window 404 occupies a greater portion of the displaycompared to window 204.

FIG. 5 shows an example of another intermediary display status 500. Thecurrent program window 502 is only partially visible in the display area150 because some portion of the window has gone beyond the top edge ofthe display 150. The window 504 that is depicting the next program hasgrown bigger as it appears to emerge from the lower edge of the displayin an upward direction.

FIG. 6 shows an example of a display status 600 in which the window 604for the next channel has moved into a position previously occupied thecurrent program window 302 (see FIG. 3).

FIG. 7 shows an example of a display status 700 in which the window 704for the new program is being rescaled to expand to eventually occupy theentire display. The windows displaying the current program 702 (which isnow the previously watched program) and another program 706 mayoptionally be present. Further, the advertisement 152 may still bepartially visible.

FIG. 8 shows an example of a display status 800 where a channel changeis complete, and the next program is being displayed in a window 802that occupies the entirety of the display area.

In some embodiments, the transitioning from a current program to a nextprogram, as described with respect to FIG. 1 to FIG. 8 above may takeplace over about the same amount of channel change time used in currenttechniques (e.g., 1.5 to 2 second for a standard definition televisionprogram). In one aspect, the presently disclosed techniques can providean instantaneous visual feedback to a user that the channel changecommand has been received and a channel change is underway. For example,the transition from FIG. 1 display (full screen) to FIG. 2 display(rescaling of the current program) can be almost instantaneous (<15 to60 milliseconds).

In another aspect, the presently disclosed techniques can be implementedin ways that allow simultaneous viewing of the current program and thenext program, with the visual information associated with the nextprogram being built as more and more data packets of the next programbecome available. Further, an advertisement or relevant secondaryprogram may also be displayed to a user during the channel change time.In one variant, the visual information for the next program may be sentusing another mechanism such as encoded pictures that are sentout-of-band with the program content, e.g., in the form of compressedgraphics thumbnails of a smaller resolution.

In another aspect, the presently disclosed techniques can be implementedto scroll the channel lineup (current program, next program and anotherchannel(s) above or below these two programs) in a manner that isintuitive for a user. For example, the filmstrip formed by windows 204,302, 206 (see FIG. 3) may be scrolled up or down depending on whetherthe user has issued a “channel up” command or a “channel down” command.The vertical movement of the program windows may also be madeuser-configurable so that a user can select a mode of operation ofchannel changes (e.g., whether to move the windows upwards or downwardfor a channel-up command and similarly for a channel-down command).

EXAMPLE 2

With reference to FIG. 8, FIG. 9, FIG. 10, FIG. 11, FIG. 12, FIG. 13,FIG. 14, FIG. 15, FIG. 16 and FIG. 17, an example embodiment isdisclosed in which a user issues multiple channel change commands beforea first channel change is completed.

FIG. 8, as previously described, depicts display status 800 where achannel change has been completed. Assume that the user selects “channeldown” button once.

FIG. 9 shows an intermediate display status 900 in which the window 902is being resized to a smaller area, with a secondary program oradvertisement visible in the remaining area on the display 150.

At the display status 1000 shown in FIG. 10, the consumer issues another“channel down” command. Thus, the user has selected the “channel down”button twice indicating that he would like to change channel to the nextchannel down. In FIG. 10, the current program is displayed in window1002, with one program above and one program below being partiallydisplayed in windows 1006 and 1004 respectively.

FIG. 11 shows an example of a display status 1100 where, in response tothe second channel change command, program windows 1102 (currentprogram), 1104 (program that the user now wants to see) and 1106(program that was seen previously) are rescaled to fit entirely withinthe display 150.

FIG. 12 shows an example of a display status 1200 in which picturewindows 1202, 1204, 1206, 1208 and 1210 are (either completely, orpartially) visible in the display 150. These rescaled windows may beanimated, or vertically scrolled to bring the user-desired programchannel to a pre-designated location on the display 150. Once theprogram window for the next program that the user wants to see is at thepre-designated position, the program window 1204 can then be rescaled tooccupy the entire display area.

FIG. 13 shows intermediary pictures while all the pictures animatedownward to the next channel down, as depicted by windows 1302, 1304,1306, 1308, 1310 and 1312 at vertically displayed positions with respectto corresponding windows 1202, 1204, 1206, 1208 and 1210 respectively.

FIG. 13 further shows an example of a display status 1300 in which allthe pictures windows animate downward to the next channel down, asdepicted by windows 1302, 1304, 1306, 1308, 1310 and 1312 at verticallydisplayed positions with respect to corresponding windows 1202, 1204,1206, 1208 and 1210 respectively.

FIG. 14 shows an example of a display status 1400 in which all thepictures windows animate downward to the next channel down, compared todisplay status 1300, as depicted by windows 1402, 1404, 1408, 1412 and1414 at vertically displayed positions with respect to correspondingwindows 1302, 1304, 1308 and 1312 respectively (window 1414 correspondsto a program not previously shown in FIG. 12 or FIG. 13).

FIG. 15 shows an example of a display status 1500 where the programwindow 1507, which corresponds to the program that the user wants towatch, is at the pre-determined position from which the program window1507 can be scaled up to occupy the entire screen area.

FIG. 16 shows an example of a display status 1600 in which the programwindow 1607 (corresponding to 1507) is being increased in size to scaleup to the entire display screen area.

FIG. 17 shows an example of a display status 1700 in which channelchange down to the next channel (2 channels down) is completed and theuser-desired program is displayed in the entire display screen.

In some embodiments, all the transition described with respect to FIG. 8to FIG. 17 may be completed normal channel change time for two (2)channels down (e.g., 1.5 to 3 seconds).

In some embodiments, the secondary program 152, displayed on the display150 as a background to the program windows, may be adaptive based onconsumer habits with respect to channel changes.

In some embodiments, the display may comprise multiple layers that areblended together. For example, each program window (e.g., five programwindows displayed in 1300) may comprise a separate graphics layer, withone additional graphics layer for the background advertisement. Inaddition, pop-in and pop-out linear icons or live content tiles may bedisplayed on another graphics layer to the user.

In some embodiments, a graphic layer may depict visual display widgetthat provides a channel change progress feedback to a user. For example,in some embodiments, a time bar may be displayed, that is progressivelyfilled in to indicate a percent or an amount of progress made inchanging a channel. In some embodiments, the progress bar may havevisible markers or milestones and the progress bar may be filled in upto the marker upon completion of the corresponding task (e.g., “programtables parsed” “channel acquired” “video decrypted” “buffer filled”etc.) In some embodiments, textual messages may be displayed to the userreporting progress in channel change operations.

It will be appreciated that the disclosed techniques for displayingchannel changes to a user can be implemented to operate without slowingdown the channel change time experienced by the user. In other words,all the UI changes from a full screen display of one channel to a fullscreen display of another channel can be finished within the normalchannel change time.

In some embodiments, a display may be rectangular (e.g., conventional16:9 or 4:3 formats). In some embodiments, a display may be rectangularand may be in a portrait mode orientation. In some examples, a displaymay include at least one curvilinear edge, e.g., a circular or an ovaldisplay. In some examples, the display may be a flexible display thatcan be bent in a horizontal and/or vertical direction.

In various embodiments, different shapes and sizes of display 150 may beused. For example, in some embodiments, a display may be generallycircular in shape and the first window may transition out of the displayin a linear translation in the vertical (upward or downward) direction.In some embodiments, the first window may transition generally from thecenter of the display in an outwardly spiraling manner. Furthermore,while this document discloses techniques in which windows are animatedin a vertical direction, other embodiments in which windows are animatedin the horizontal or diagonal directions are possible also. In variousembodiments, the advertisements may include still or moving pictureadvertisements or additional content elements such as graphics, systeminformation, messages (e.g., weather, horoscope, etc.), and so on.

FIG. 18 is a flowchart depiction of an example method 1500 for visuallypresenting channel changes on a display.

At 1502, the method 1500 displays a first program in a first window at afirst position on the display. For example, as depicted in FIG. 1, thefirst window may occupy the entire screen area and the first positionmay simply overlap with the display area.

At 1504, the method 1500 receives a first channel change command. Thechannel change command may be a command to go up by one channel or godown by one channel.

At 1506, the method 1500 changes, in response to the first channelchange command, a first visual characteristic of the first window,thereby exposing a portion of a background layer of the display. In someembodiments, the first visual characteristic may, e.g., by the size ofthe display window and/or the alpha value weight applied to the windowduring blending of various graphics layers. In some embodiments, thevisual characteristic may be changed by cropping the display of thefirst program to only display the portion that fits within the firstwindow. In some embodiments, the first visual characteristic is changedby re-scaling the picture. That is, the user may still be able to seethe entire frame of video, but at a reduced resolution to fit within asmaller window.

In some embodiments, the method 1500 may provide a visual cue toidentify the first position on the display. For example, as previouslydisclosed, a seed position may be identified using a semi-transparentoutline, or using an alignment arrow.

At 1508, the method 1500 displays at least a portion of a second programin the exposed portion of the display in a second window that ispositioned in a vertical direction with respect to the first window. Aspreviously disclosed, in some embodiments, the vertical directionscrolling may move the window towards the top edge (and away from thebottom edge) or towards the bottom edge (and away from top edge) of thedisplay.

In some embodiments, when the user command is a “channel-up” command,the first and the second windows are moved in the downward direction.This enables replacement of the first program window by the next programwindow above it (i.e., window towards the top edge).

In some embodiments, the first channel change command includes achannel-down command and the automatic scrolling moves the first windowand the second window in a vertically downward direction. In someembodiments, a user is given control of specifying which way the userwould like to see window movement to happen for channel up and channeldown commands.

At 1510, the method 1500 automatically scrolls the first window and thesecond window across the display in the vertical direction, such thatthe first window begins to move out of the display while the secondwindow begins to move in a direction of the first position.

In some embodiments, the method 1500 displays an additional contentelement (e.g., an advertisement or another informational text orgraphics) on the background layer such that at least a portion of theadvertisement that is non-overlapping with the first window and thesecond window is visible. The method 1500 may start the advertisementdisplay as soon as the first display characteristic is changed or maystart the advertisement display during the scrolling operation.

At 1512, the method 1500, changes, after the second window is at thefirst position on the display, a second visual characteristic of thesecond window such that the second window occupies the display, with thefirst window disappearing from the display. The second visualcharacteristic may comprise cropping the program, re-scaling the programand so on.

FIG. 19 is an example of a block diagram representation of an apparatus1600 for providing visually continuous channel changes on a display.

The module 1602 (e.g., a display module) displays a current program onsubstantially all area of the display.

The module 1604 (e.g., a command reception module) receives a commandfor viewing a next program.

The module 1606 (e.g., a first rescaler module) rescales, in response tothe command, in a visually continuous manner, the current program to fitwithin a first window in the display occupying an original position onthe display.

The module 1608 (e.g., a presentation module) presents, at least a partof the next program, in a second window that is positioned in a secondportion of the display that is non-overlapping with the first portion.

The module 1610 (e.g., a window transition module) transitions out, in avisually continuous manner, the first window from the display whiletransitioning in the second window to the original position previouslyoccupied by the first window.

The module 1612 (e.g., a second rescaler module) expands the secondwindow, after the second window is at the original position, to occupysubstantially all area of the display.

In some embodiments, the apparatus 1600 further includes a secondaryprogram display module that displays a secondary program on the displaysuch that the secondary program is visible in an area of display notoccupied by the first window and the second window. In some embodiments,the apparatus 1600 includes an ad analysis module that determines a keyportion of the secondary program, and a window positioning module thatpositions, based on the key portion of the secondary program, a positionfor the first window in the display. The ad analysis module may usetechniques such as pattern recognition to extract visual information inadvertisements or may be provided with un-occlusion informationassociated with advertisements. In some embodiments, the apparatus 1600includes an ad selection module that selects the secondary program basedon at least one of the current program and the next program (e.g., if auser was watching a sports program, then display an ad relevant tosports, as indicated by keywords associated with the ad).

In some embodiments, the input programs may be received as an MPEG(moving pictures expert group) transport stream in MPEG-2 or H.264 orH.265 format. Video encoded using these formats may be encoded as intrablocks that includes all content information for decoding or as intercoded blocks that are encodes as a difference from another pictureblock. In such embodiments, the apparatus 1600 may include a programdecoder module that receives, during the period of time, additionalvideo data for the next program, decodes the additional video data andmakes the decoded additional video data available to the presentationmodule, such that the presentation module refreshes the second window torender the decoded additional video data upon availability thereof.

In a multi-channel content delivery system, the term “channel” often hasa contextual meaning. For example, at the physical layer, a “channel”may refer to a frequency band (e.g., a 6 MHz frequency band in coaxialcable transmissions in the United States). At the application layer, theterm “channel” may simply refer to an audio/video program (or anaudio-only program). In analog transmission systems, one physical layerchannel often mapped to one application layer channel (or program). Indigital video delivery, when a user presses a “channel up” button, tofulfill this command, the user device may or may not have to change aphysical radio frequency (RF) on which the user device can receive thecorresponding content. In digital cable or satellite delivery systems, aphysical channel often carries content for 10 to 12 video programs(application layer “channels”) and some user commands to go up by achannel can be met without having to make any changes to the RFfrequency of reception. In Internet Protocol (IP) based program deliverysystems, all programs may be received on the same RF (physical layer)channel, and a “channel up” “channel down” command may be fulfilled bysimply using a different filtering criteria for received packets.

FIG. 20 is an example of a flowchart representation of a method 1700 forcontrolling a display to provide an enhanced (e.g., visually seamless)channel change experience.

At 1702, the method 1700 displays a first (application layer) channel(e.g., FIG. 1). At 1704, the method 1700 receives a first command toview a second channel.

At 1706, the method 1700 initiates a channel change from the firstchannel to the second channel, in which the channel change includesreducing a display size of the first channel, progressively displayingvideo from the second channel as more and more data for the secondchannel is received, scrolling out the first channel such that the firstchannel gradually disappears from the display, correspondingly scrollingthe second channel to take an on-screen position of the first channel,and expanding the second channel to a full size after sufficient datafor the second channel is available.

At 1708, the method 1700 receives, amid the channel change and prior tothe expanding the second channel to the full size, a second command toview a third channel, and in response to the second command.

At 1710, the method 1700 progressively displays video from the thirdchannel as more and more data for the third channel is received,scrolling out the first channel and the second channel such that thefirst channel and the second channel gradually disappear from thedisplay, correspondingly scrolling the third channel to take a positionof the first channel, and expanding the third channel to a full sizeafter sufficient data for the third channel is available.

As previously disclosed with respect to FIG. 8 to FIG. 17, in someembodiments, the method 1700 may display at least a portion of videofrom the first channel and the second channel while progressivelydisplaying video from the third channel (e.g., FIG. 12, FIG. 13, FIG.14, etc.). In some embodiments, the method 1700 may tune, in response toreceiving the first command to view the second channel, a radiofrequency tuner to a different frequency. The turning may be performedwhen the method 1700 determines that the user-requested next channel isnot available on the same physical layer channel but is available onanother carrier.

In embodiments that use both intra- and inter-coded video, the method1700 may progressively display video from the second channel byinitially decoding and displaying intra coded blocks of the video fromthe second channel, and further decoding and displaying inter codedblocks of the video from the second channel upon availability ofreference blocks for the inter code blocks.

In some embodiments, the method 1700 may reduce sizes of the firstwindow and the second window to make content for multiple video programsvisible to the use, thereby providing an easy preview of programmingavailable on other channels. For example, display status 1200, 1300 and1400 each show 5 different windows in which 5 consecutive programs areconcurrently displayed to the user.

FIG. 21 is an example of a block diagram representation of an apparatus1800 for displaying multiple video programs simultaneously.

The module 1802 (e.g., a first display module) displays a first videoprogram in a first program window.

The module 1804 (e.g., a second display module) displays a second videoprogram in a second program window.

The module 1806 (e.g., a display window management module) controlssizes and positions of the first program window and the second programwindow such that the second program window is non-overlapping with andpositioned directly above or below the first program window. In thiscontext, the terms “above” and “below” refer to arrangement of theprogram windows (e.g., windows 1202, 1204, 1206, 1208) on the displayscreen and tiled in a vertical direction toward or away from the topedge 158 of the display 150.

The module 1808 (e.g., a command module) receives a first command tochange channel from the first program to a second program.

The module 1810 (e.g., a transition module) causes, responsive to thefirst command, the first program window and the second program window totransition from an initial state in which the first program window iscompletely visible and at a first position on the screen and a finalstate in which the first program window is completely invisible and thesecond program window is at the first position.

The module 1812 (e.g., a first rescaler module) rescales the firstprogram window from a first full-screen mode in which the first programwindow occupies an entire screen display area to a first window-mode inwhich the first program window occupies less than the entire screendisplay area.

The module 1814 (e.g., a second rescaler module) rescales the secondprogram window from a second window-mode in which the second programwindow occupies less than the entire screen display area and a secondfull-screen mode in which the second program window occupies the entirescreen display area.

In some embodiments, the apparatus 1800 includes a secondary programdisplay module that displays a secondary program to be visible in anarea of display not occupied by the first program window and the secondprogram window.

In some embodiments, the transition module controls transition from theinitial state to the final state in an amount of time during which imageinformation for an entire picture of the second program is received.

In some embodiments, the transition module controls the transition fromthe initial state to the final state by scrolling the first programwindow and the second program window in a vertical direction such thatany portion of the first program window and the second program windowthat falls outside the screen is not displayed.

It will be appreciated that the disclosed techniques can be used tovisually engage a user by presenting animated program windows and/oradvertisements and/or other animation during a channel change, therebyimproving a user's experience during channel change times.

It will further be appreciated that the disclosed technique provideadditional opportunities to content providers, network operators anddevice makers, do generate advertisement revenue by using the additionaltime resources (channel change time) and screen real estate (displayarea that is not occluded by program windows) to display advertisementsto a user.

The disclosed and other embodiments, the functional operations andmodules described in this document can be implemented in digitalelectronic circuitry, or in computer software, firmware, or hardware,including the structures disclosed in this document and their structuralequivalents, or in combinations of one or more of them. The disclosedand other embodiments can be implemented as one or more computer programproducts, i.e., one or more modules of computer program instructionsencoded on a computer readable medium for execution by, or to controlthe operation of, data processing apparatus. The computer readablemedium can be a machine-readable storage device, a machine-readablestorage substrate, a memory device, a composition of matter effecting amachine-readable propagated signal, or a combination of one or morethem. The term “data processing apparatus” encompasses all apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, or multiple processors or computers.The apparatus can include, in addition to hardware, code that creates anexecution environment for the computer program in question, e.g., codethat constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, or a combination of one or moreof them. A propagated signal is an artificially generated signal, e.g.,a machine-generated electrical, optical, or electromagnetic signal, thatis generated to encode information for transmission to suitable receiverapparatus.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, and it can bedeployed in any form, including as a standalone program or as a module,component, subroutine, or other unit suitable for use in a computingenvironment. A computer program does not necessarily correspond to afile in a file system. A program can be stored in a portion of a filethat holds other programs or data (e.g., one or more scripts stored in amarkup language document), in a single file dedicated to the program inquestion, or in multiple coordinated files (e.g., files that store oneor more modules, sub programs, or portions of code). A computer programcan be deployed to be executed on one computer or on multiple computersthat are located at one site or distributed across multiple sites andinterconnected by a communication network.

The processes and logic flows described in this document can beperformed by one or more programmable processors executing one or morecomputer programs to perform functions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read only memory ora random access memory or both. The essential elements of a computer area processor for performing instructions and one or more memory devicesfor storing instructions and data. Generally, a computer will alsoinclude, or be operatively coupled to receive data from or transfer datato, or both, one or more mass storage devices for storing data, e.g.,magnetic, magneto optical disks, or optical disks. However, a computerneed not have such devices. Computer readable media suitable for storingcomputer program instructions and data include all forms of non volatilememory, media and memory devices, including by way of examplesemiconductor memory devices, e.g., EPROM, EEPROM, and flash memorydevices; magnetic disks, e.g., internal hard disks or removable disks;magneto optical disks; and CD ROM and DVD-ROM disks. The processor andthe memory can be supplemented by, or incorporated in, special purposelogic circuitry.

As a specific example, an example processing code is included below toillustrate one implementation of the above disclosed processing.

While this document contains many specifics, these should not beconstrued as limitations on the scope of an invention that is claimed orof what may be claimed, but rather as descriptions of features specificto particular embodiments. Certain features that are described in thisdocument in the context of separate embodiments can also be implementedin combination in a single embodiment. Conversely, various features thatare described in the context of a single embodiment can also beimplemented in multiple embodiments separately or in any suitablesub-combination. Moreover, although features may be described above asacting in certain combinations and even initially claimed as such, oneor more features from a claimed combination can in some cases be excisedfrom the combination, and the claimed combination may be directed to asub-combination or a variation of a sub-combination. Similarly, whileoperations are depicted in the drawings in a particular order, thisshould not be understood as requiring that such operations be performedin the particular order shown or in sequential order, or that allillustrated operations be performed, to achieve desirable results.

Only a few examples and implementations are disclosed. Variations,modifications, and enhancements to the described examples andimplementations and other implementations can be made based on what isdisclosed.

What is claimed is:
 1. A method for visually presenting channel changeson a display, comprising: displaying a first video of a first program ina first window occupying substantially all of the display at a centerposition on the display; receiving a first channel change command; inresponse to the first channel change command: reducing the display areaof the first window, thereby exposing a portion of a background layer ofthe display; displaying at least a portion of a second video of a secondprogram in the exposed portion of the display in a second window that ispositioned in a vertical direction with respect to the first window;automatically scrolling the first window and the second window acrossthe display in the vertical direction, such that the first window beginsto move out of the display while the second window begins to move in adirection of the center position; after the second window is at thecenter position on the display, expanding the display area of the secondwindow such that the second window occupies substantially all of thedisplay.
 2. The method of claim 1, further comprising: displaying,during the scrolling operation, an additional content element (“ACE”) onthe background layer such that at least a portion of the ACE that isnon-overlapping with the first window and the second window is visible.3. The method of claim 2, wherein the ACE comprises an advertisement. 4.The method of claim 1, wherein the first channel change command includesa channel-up command and wherein the automatically scrolling in thevertical direction includes moving the first window and the secondwindow in a vertically downward direction.
 5. The method of claim 1,wherein the first channel change command includes a channel-down commandand wherein the automatically scrolling in the vertical directionincludes moving the first window and the second window in a verticallydownward direction.
 6. The method of claim 1, further comprising:receiving a second channel change command prior to expanding the displayarea of the second window; and replacing the second video of the secondprogram with a third video of a third program.
 7. The method of claim 1,wherein the first video of the first program is held static in responseto the first channel change command.
 8. The method of claim 1, whereinthe first video of the first program remains active in response to thefirst channel change command.
 9. The method of claim 1, furthercomprising displaying, during the scrolling operation, arrows indicatingchannel directions on the background layer.
 10. The method of claim 1,wherein the first window and the second window have the same widthduring the scrolling operation.
 11. An apparatus for providing visuallycontinuous channel changes on a display having a display area,comprising a processor and a non-transitory computer-readable mediumimplementing: a display module that displays a first video of a currentprogram on substantially all of the display area; a command receptionmodule that receives a command for viewing a second video of a nextprogram; a first rescaler module that rescales, in response to thecommand, in a visually continuous manner, the first video of the currentprogram to fit within a first window having a display area that issmaller than substantially all of the display area in the displayoccupying an original position on the display; a presentation modulethat presents, at least a part of the second video of the next program,in a second window having a display area that is smaller thansubstantially all of the display area that is positioned in a secondportion of the display that is non-overlapping with the first portion; awindow transition module that transitions out, in a visually continuousmanner, the first window from the display area while transitioning inthe second window to the original position previously occupied by thefirst window; and a second rescaler module that expands the secondwindow, after the second window is at the original position, to occupysubstantially all of the display area.
 12. The apparatus of claim 11,further including: a secondary program display module that displays asecondary program on the display such that the secondary program isvisible in an area of display not occupied by the first window and thesecond window.
 13. The apparatus of claim 12, further including: an adanalysis module that determines a key portion of the secondary program;and a window positioning module that positions, based on the key portionof the secondary program, a position for the first window in thedisplay.
 14. The apparatus of claim 12 further comprising: an adselection module that selects the secondary program based on at leastone of the current program and the next program.
 15. The apparatus ofclaim 11, wherein the window transition module transitions out the firstwindow from a top edge or a bottom edge of the display by linearlyshifting the first window over a period of time.
 16. The apparatus ofclaim 15, further comprising: a program decoder module that receives,during the period of time, additional video data for the next program,decodes the additional video data and makes the decoded additional videodata available to the presentation module; and wherein the presentationmodule refreshes the second window to render the decoded additionalvideo data upon availability thereof.
 17. The apparatus of claim 11,wherein the first video of the first program is held static in responseto the command.
 18. The apparatus of claim 11, wherein the first videoof the first program remains active in response to the command.
 19. Amethod for controlling a display to provide an enhanced channel changeexperience, comprising: displaying a first channel; receiving a firstcommand to view a second channel; initiating a channel change from thefirst channel to the second channel, in which the channel changeincludes reducing a display size of the first channel, progressivelydisplaying video from the second channel as more and more data for thesecond channel is received, scrolling out the first channel such thatthe first channel gradually disappears from the display, correspondinglyscrolling the second channel to take an on-screen position of the firstchannel, and expanding the second channel to a full size aftersufficient data for the second channel is available; receiving, amid thechannel change and prior to the expanding the second channel to the fullsize, a second command to view a third channel, and in response to thesecond command; and progressively displaying video from the thirdchannel as more data for the third channel is received, scrolling outthe first channel and the second channel such that the first channel andthe second channel gradually disappear from the display, correspondinglyscrolling the third channel to take a position of the first channel, andexpanding the third channel to a full size after sufficient data for thethird channel is available.
 20. The method of claim 19, wherein thescrolling is not in a vertical direction.
 21. The method of claim 20,further comprising: displaying at least a portion of video from thefirst channel and the second channel while progressively displayingvideo from the third channel.
 22. The method of claim 20, furtherincluding: tuning, in response to receiving the first command to viewthe second channel, a radio frequency tuner to a different frequency.23. The method of claim 20, wherein the progressively displaying videofrom the second channel includes: initially decoding and displayingintra coded blocks of the video from the second channel; and furtherdecoding and displaying inter coded blocks of the video from the secondchannel upon availability of reference blocks for the inter code blocks.24. The method of claim 20, further including: selectively reducingon-screen display sizes of the first channel and the second channelbased on a screen area available for displaying the third channel. 25.The method of claim 19, wherein the first program is held static duringthe channel change.
 26. The method of claim 19, wherein the firstprogram remains active during the channel change.